<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>2-5 介绍webgl三维坐标系</title>
  <script src="../lib/index.js"></script>
  <style>
    * {
      margin: 0 !important;
      padding: 0 !important;
    }
    #canvas {
      background: gray;
    }
    body::after {
      content: ' ';
      display: block;
      width: 1px;
      height: 400px;
      background: red;
      position: absolute;
      top: 0;
      left: 200px;
    }
    body::before {
      content: ' ';
      display: block;
      width: 400px;
      height: 1px;
      background: red;
      position: absolute;
      top: 200px;
      left: 0;
    }
  </style>
</head>
<body>
  <canvas id="canvas" width="400" height="400">
    此浏览器不支持canvas
  </canvas>

  <script>
    const ctx = document.getElementById('canvas');
    const gl = ctx.getContext('webgl');

    /**
     * 创建着色器源码
     * */
    // 顶点着色器
    // gl_Position vec4(0.0, 0.0, 0.0, 1.0) x, y, z, w齐次坐标（x/w, y/w, z/w）
    const VERTEX_SHADER_SOURCE = `
      // 必须要存在 main 函数
      void main() {
        // 要绘制的点的坐标
        gl_Position = vec4(0.5, 0.5, 0.0, 1.0);
        // 点的大小
        gl_PointSize = 30.0;
      }
    `;

    // 片元着色器
    // gl_FragColor vec4(1.0, 0.0, 0.0, 1.0) r, b, g, a
    const FRAGMENT_SHADER_SOURCE = `
      void main() {
        gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
      }
    `;

    /**
     * 创建着色器
     * */
    const program = initShader(gl, VERTEX_SHADER_SOURCE, FRAGMENT_SHADER_SOURCE);

    /**
     * 执行绘制
     * */
    // 要绘制的图形是什么，从哪个开始、使用几个顶点
    gl.drawArrays(gl.POINTS, 0, 1);
  </script>
</body>
</html>